专利摘要:
一般に、本開示は、プラットフォームインタフェース層を使用している表面の作成のための様々な技術を説明しており、なお、このような表面は、YbCrカラースペースのような様々な異なるカラースペースのための異なるフォーマットレイアウトを有することができる。1つの例示的なデバイスは、表面情報を含むように構成されたストレージデバイスと、プラットフォームインタフェース層を使用してカラースペース内でグラフィックス表面を作成するように構成された1以上のプロセッサと、を含む。プラットフォームインタフェース層は、クライアントレンダリング・アプリケーションプログラムインタフェース(API)と、根本的なネイティブプラットフォームレンダリングAPIとの間にある。1以上のプロセッサは、プラットフォームインタフェース層を使用して、カラースペース内の表面と関連づけられたデータのフォーマットレイアウトを指定するように、そして、ストレージデバイス内でフォーマットレイアウトを保存するように、さらに構成されている。フォーマットレイアウトは、カラースペース内の表面と関連づけられたデータの1以上のカラーコンポーネントのレイアウトを示す。
公开号:JP2011510406A
申请号:JP2010543286
申请日:2009-01-16
公开日:2011-03-31
发明作者:ウェイブリュー、スティーブン・トッド;エリス、ブライアン
申请人:クゥアルコム・インコーポレイテッドQualcomm Incorporated;
IPC主号:G06T11-00
专利说明:

[0001] 本願は、2008年1月18日に出願された米国仮特出願第61/022,193号の利益を主張しており、その全体の内容は、参照によってここに組込まれる。]
技術分野

[0002] 本願は、グラフィクス処理システム内の表面のディスプレイ及びレンダリング(rendering and display of surfaces)に関する。]
背景

[0003] グラフィックスプロセッサは、様々なアプリケーション、例えば、テレビゲーム、グラフィクスプログラム、計算機援用設計(computer-aided design)(CAD)アプリケーション、シミュレーション及びビジュアル化ツール、及びイメージング、についての、二次元(2D)及び三次元(3D)のイメージをレンダリングするために広く使用されている。ディスプレイプロセッサは、ディスプレイデバイスを介した、ユーザへの提示(presentation)のために、グラフィックスプロセッサのレンダリングされた出力をディスプレイするために使用されることができる。]
[0004] グラフィックスプロセッサ、ディスプレイプロセッサ、あるいは、これらのアプリケーションで使用されるマルチメディアプロセッサは、データの、並列及び/またはベクトル処理を実行するように構成されることができる。SIMD(single instruction, multiple data)(単独命令、マルチプルデータ)拡張を備えた、あるいは備えていない、汎用CPU’s(中央処理装置)も、データを処理するように構成されることができる。SIMDベクトル処理では、単独命令は、マルチプルデータアイテム上で同時に動作する。]
[0005] OpenGL(オープン・グラフィックスライブラリ)は、2D及び3Dのグラフィックスを生成するアプリケーションを書き込むときに使用されることができるAPI(アプリケーションプログラムインタフェース)を定義する標準規格仕様である。(Java(登録商標)のような他の言語は、それら自身の標準プロセスを通じて、OpenGL APIへの接合(binding)を定義することができる。)インタフェースは、単純なプリミティブ(simple primitive) からシーンを取り出すために使用されることができる、マルチプル関数呼び出し(multiple function calls) を含む。グラフィックスプロセッサ、マルチメディアプロセッサ、そして、汎用CPU’sのものでさえ、OpenGL関数呼び出しを使用して書かれるアプリケーションを実行することができる。OpenGLES(埋め込み型システム)は、埋め込み型デバイス、例えば、モバイル無線電話、デジタルマルチメディアプレーヤー、携帯情報端末(PDA’s)、あるいはビデオゲームコンソール、のために設計されるOpenGLの変形である。OpenVG(オープンベクトルグラフィックス)は、ハードウェア加速された2Dベクトルグラフィックスのために主として設計される別の標準規格APIである。]
[0006] EGL(埋め込み型グラフィックスライブラリ)は、マルチメディアクライアントAPI’s(例えばOpenGLES、OpenVG、及びいくつかの他の標準規格マルチメディアAPI’s)と根本的なプラットフォームマルチメディア設備との間のプラットフォームインタフェース層である。EGLは、グラフィクスコンテキスト管理(graphics context management)、レンダリング表面作成(rendering surface creation)、及びレンダリング同期化(rendering synchronization)を扱うことができ、高性能で、ハードウェア加速され、ミックスモードの2D及び3Dレンダリングを可能にする。レンダリング表面作成については、EGLは、クライアントAPI’s(例えば、ユーザアプリケーションAPI’s)が取り出し共有することができる、表面を作成するためのメカニズムを提供する。現在、EGLは、リニア(linear)で、sRGB(標準の赤緑青)表面のみのサポートを提供する。]
[0007] 一般的に、本開示は、EGLのようなプラットフォームインタフェース層を使用している表面の作成についての様々な技術を説明しており、そのような表面は、RGB(赤、緑、青)カラースペースあるいはYCbCr(輝度、青色差、赤色差、Cb及びCr信号はY信号からのデルタである)カラースペースのような様々な異なるカラースペースのための異なるフォーマット(あるいはパッキング)レイアウトを有することができる。あるケースでは、YCbCr EGL表面は、OpenGL及びOpenVGの表面で使用されてもよく、例えばLCD(液晶ディスプレイ)あるいはテレビ(TV)ディスプレイデバイスのようなディスプレイデバイス上の最終のディスプレイ(ultimate display)について表面オーバーレイスタック(a surface overlay stack)内で組み合わせられてもよい。]
[0008] このように、様々な2D、3D及び/または異なるカラースペースにおけるビデオ表面は、ディスプレイデバイス上のディスプレイについて最終的に(ultimately)組み合わせられることができる。あるケースでは、この機能性とサポートは、例えばEGL拡張のようなプラットフォームインタフェース層拡張の一部として提供されることができる。拡張は、YCbCr表面、例えばJPEG(Joint Photographic Experts Group)表面あるいはMPEG4(Moving Picture Experts Group version 4)表面、のRGBカラースペースへの変換を援助する変換情報をさらに提供することができ、そしてそれは、そのような表面のディスプレイに有用でありうる。]
[0009] 一態様では、方法は、クライアントレンダリング・アプリケーションプログラムインタフェース(a client rendering application program interface)(API)とネイティブプラットフォームレンダリングAPI(native platform rendering API)との間にあるプラットフォームインタフェース層を介して、グラフィクス表面を作成すること(creating)、を含んでいる。方法はさらに、プラットフォームインタフェース層を使用して、カラースペース内の表面と関連づけられたデータのフォーマットレイアウト(format layout)を指定すること、をさらに含んでおり、なお、フォーマットレイアウトは、カラースペース内の表面と関連づけられたデータの1以上のカラーコンポーネントのレイアウトを示している。]
[0010] 別の態様では、デバイス(device)は、表面情報を保存するように構成されたストレージデバイスと、プラットフォームインタフェース層を介してグラフィックス表面を作成するように構成された1以上のプロセッサと、を含む。プラットフォームインタフェース層は、クライアントレンダリングAPIと、ネイティブプラットフォームレンダリングAPIと、の間にある。1以上のプロセッサは、プラットフォームインタフェース層を使用して、カラースペース内の表面と関連づけられたデータのフォーマットレイアウトを指定するように、そして、ストレージデバイスの表面情報内でフォーマットレイアウトを保存するように、さらに構成されている。フォーマットレイアウトは、カラースペース内の表面と関連づけられたデータの1以上のカラーコンポーネントのレイアウトを示す。]
[0011] 一態様では、コンピュータ可読媒体(computer-readable medium)は、1以上のプログラマブルプロセッサに、クライアントレンダリングAPIとネイティブプラットフォームレンダリングAPIとの間にあるプラットフォームインタフェース層を介して、グラフィクス表面を作成させ、プラットフォームインタフェース層を使用して、カラースペース内の表面と関連づけられたデータのフォーマットレイアウトを指定させる、命令(instructions)を含む。フォーマットレイアウトは、カラースペース内の表面と関連づけられたデータの1以上のカラーコンポーネントのレイアウトを示す。]
[0012] 本開示の1つまたは複数の態様の詳細は、添付図面と下記の詳細な説明で記載されている。他の特徴、目的、及び利点は、説明と図面、及び特許請求の範囲から明らかとなるであろう。]
図面の簡単な説明

[0013] 図1Aは、開示の一態様にしたがって、表面作成のためのマルチフォーマットサポートをインプリメントするために使用されることができるデバイスを図示するブロック図である。
図1Bは、開示の別の態様にしたがって、表面作成のためのマルチフォーマットサポートをインプリメントするために使用されることができるデバイスを図示するブロック図である。
図2Aは、本開示の一態様にしたがって、YCbCr(輝度、青色差、赤色差)カラースペースにおける表面作成のためのマルチフォーマットサポートをインプリメントするために使用されることができるデバイスを図示しているブロック図である。
図2Bは、本開示の一態様にしたがって、図2Aで示されるAPIライブラリのさらなる詳細を図示するブロック図である。
図2Cは、本開示の一態様にしたがって、図2Aで示されるドライバのさらなる詳細を図示するブロック図である。
図2Dは、本開示の一態様にしたがって、YCbCr(輝度、青色差、赤色差)カラースペースにおける表面作成のためのマルチフォーマットサポートをインプリメントするために使用されることができるデバイスを図示しているブロック図である。
図3Aは、本開示の一態様にしたがって、1以上のYCbCr表面を含むことができる、表面のための表面情報の一例を図示するブロック図である。
図3Bは、本開示の一態様にしたがって、ディスプレイデバイス上でディスプレイされることができる図3Aからの表面と関連づけられた、オーバーレイされた表面データ(overlaid surface data)の一例を図示するブロック図である。
図4は、本開示の一態様にしたがって、図1A、図1B、図2A、あるいは図2Dのグラフィクス処理システムで示される、制御プロセッサ、グラフィクスプロセッサ、及び/またはディスプレイプロセッサ、のうちの1つまたは複数によって実行されることができる方法のフロー図である。
図5は、本開示の一態様にしたがって、図1A、図1B、図2A、あるいは図2Dのグラフィクス処理システムで示される、制御プロセッサ、グラフィクスプロセッサ、及び/またはディスプレイプロセッサ、のうちの1つまたは複数によって実行されることができる別の方法のフロー図である。
図6は、本開示の一態様にしたがって、YCbCr表面構成/サンプリング情報がYCbCr表面のための構成及びサンプリング情報を示すために使用されることができる一例を図示する。] 図1A 図1B 図2A 図2B 図2C 図2D 図3A 図3B 図4 図5
詳細な説明

[0014] 図1Aは、一態様にしたがって、表面作成のためのマルチフォーマットサポートをインプリメントするために使用されることができるデバイス100を図示するブロック図である。デバイス100は、スタンドアロンデバイスであってもよく、あるいは、より大きなシステムの一部であることができる。例えば、デバイス100は、無線通信デバイス(例えば無線モバイルハンドセット)を備えていてもよく、あるいは、デジタルカメラ、デジタルマルチメディアプレーヤー、携帯情報端末(PDA)、ビデオゲームコンソール、あるいは、他のビデオデバイスの一部であってもよい。デバイス100はまた、パーソナルコンピュータ(例えば、ウルトラモバイルパーソナルコンピュータ)、あるいは、ラップトップデバイスを備えることができる。デバイス100はまた、上記で説明されたデバイスのうちのいくつかあるいはすべてにおいて使用されることができる、1以上の集積回路、すなわちチップに含まれることができる。] 図1A
[0015] デバイス100は、様々な異なるアプリケーション、例えば、グラフィックスアプリケーション、ビデオアプリケーション、あるいは他のマルチメディアアプリケーション、を実行することができる。例えば、デバイス100は、グラフィックスアプリケーション、ビデオゲームアプリケーション、ビデオアプリケーション、デジタルカメラアプリケーション、インスタントメッセージングアプリケーション、テレビ遠隔会議アプリケーション(video teleconferencing applications)、モバイルアプリケーション、あるいはビデオストリーミングアプリケーション、に使用されることができる。]
[0016] デバイス100は、様々な異なるデータタイプ及びフォーマットを処理することができる。例えば、デバイス100は、下記でさらに詳細に説明されるように、静止画像データ、動画(ビデオ)データ、あるいは、マルチメディアデータ、を処理することができる。イメージデータは、コンピュータ生成グラフィックスデータを備えることができる。デバイス100は、グラフィクス処理システム102、メモリ104、及びディスプレイデバイス106を含む。プログラム可能なプロセッサ108、110、及び114は、グラフィクス処理システム102内に論理的に含まれる。プログラム可能なプロセッサ108は、制御あるいは汎用、のプロセッサであることができる。プログラム可能なプロセッサ110は、グラフィックスプロセッサであり、プログラム可能なプロセッサ114は、ディスプレイプロセッサであることができる。制御プロセッサ108は、グラフィックスプロセッサ110とディスプレイプロセッサ114の両方を制御することができる。プロセッサ108、110、及び114は、スカラー(scalar)またはベクトルのプロセッサであることができる。一態様では、デバイス100は、マルチメディアプロセッサの他の形を備えることができる。]
[0017] デバイス100では、グラフィクス処理システム102は、メモリ104とディスプレイデバイスの両方に結合される。メモリ104は、命令及び/またはデータを保存することができる、いずれの永久的あるいは揮発性メモリを含むことができる。ディスプレイデバイス106は、LCD(液晶ディスプレイ)あるいはプラズマディスプレイ、あるいは他のテレビ(TV)ディスプレイデバイスのようなディスプレイについて、3Dイメージデータ、2Dイメージデータ、あるいはビデオデータをディスプレイすることができる、いずれのデバイスであってもよい。]
[0018] グラフィックスプロセッサ110は、コンピュータ化されたグラフィックスをレンダリングし、操作し(manipulate)、そしてディスプレイするために使用される、専用グラフィックスレンダリングデバイス(dedicated graphics rendering device)であってもよい。グラフィックスプロセッサ110は、様々な複合グラフィックス関連アルゴリズム(various complex graphics-related algorithms)をインプリメントすることができる。例えば、複合アルゴリズム(complex algorithms)は、二次元あるいは三次元のコンピュータ化されたグラフィックスの表示に対応することができる。グラフィックスプロセッサ110は、ディスプレイデバイス106のようなディスプレイ上で複雑な3次元イメージを作成するために、複数のいわゆる「プリミティブ」グラフィクスオペレーション、例えば点、線、三角、あるいは他の多角形の表面を形成すること、をインプリメントすることができる。]
[0019] 本開示では、用語「レンダリングする(render)」は、一般的に3D及び/または2Dレンダリングを指す。例として、グラフィックスプロセッサ110は、3DグラフィックスフレームをレンダリングするOpenGL命令を使用してもよく、あるいは2Dグラフィックス表面をレンダリングするOpenVG命令を使用してもよい。しかしながら、グラフィックスをレンダリングするための様々な他の基準、方法あるいは技術のいずれも、グラフィックスプロセッサ110によって利用されることができる。]
[0020] グラフィックスプロセッサ110は、メモリ104に保存される命令を実行することができる。メモリ104は、アプリケーション(例えばグラフィックスあるいはビデオアプリケーション)、APIライブラリ120、及びドライバ122のためのアプリケーション命令118を保存することができる。アプリケーション命令118は、実行のために、グラフィクス処理システム102へと、メモリ104からロードされることができる。例えば、制御プロセッサ108、グラフィックスプロセッサ110、及びディスプレイプロセッサ114のうちの1つまたは複数は、命令118のうちの1つまたは複数を実行することができる。]
[0021] 制御プロセッサ108、グラフィックスプロセッサ110、及び/または、ディスプレイプロセッサ114は、アプリケーション命令118の実行の間に、APIライブラリ120またはドライバ122内に含まれる命令をロードし実行することができる。命令118は、APIライブラリ120あるいはドライバ122内のある関数を参照する、あるいは、起動することができる(invoke)。したがって、グラフィクス処理システム102が命令118を実施するとき、下記で詳細に説明されるように、APIライブラリ120及び/またはドライバ122内で識別された命令を実施することもできる。ドライバ122は、制御プロセッサ108、グラフィックスプロセッサ110及びディスプレイプロセッサ114のうちの1つまたは複数に特有である機能を備えることができる。一態様では、アプリケーション命令118、APIライブラリ120、及び/またはドライバ122は、不揮発性のデータストレージ媒体のようなストレージデバイスからメモリ104へとロードされることができる。一態様では、アプリケーション命令118、APIライブラリ120、及び/または、ドライバ122は、メモリ104へと、無線で(over the air)、動的にダウンロードされる1以上のダウンロード可能なモジュールを備えることができる。]
[0022] メモリ104はさらに、表面情報124を含む。表面情報124は、グラフィクス処理システム102内で作成される表面についての情報を含むことができる。例えば、表面情報124は、表面データ、表面フォーマットデータ、及び/または、与えられた表面と関連づけられた表面変換データ(surface conversion data)、を含むことができる。この表面は、2D表面、3D表面、あるいはビデオ表面を備えることができる。本開示の目的のために、2D表面は、例えばOpenVGのような2DAPIによって作成されることができるものである。3D表面は、例えばOpenGLのような、3D APIによって作成されることができるものである。ビデオ表面は、ビデオデコーダ、例えばH.264あるいはMPEG4(Moving Picture Experts Group version 4)、によって作成されることができるものである。]
[0023] 表面情報124は、グラフィクス処理システム102の表面情報ストレージデバイス112へとロードされることができる。表面情報ストレージデバイス112内の更新された情報もまた、メモリ104の表面情報124内のストレージのために戻って提供されることができる。一態様では、表面情報ストレージデバイス112内に含まれる情報は、メモリ104内に直接含まれることができる。本態様では、図1Bで示されているように、表面情報ストレージデバイス112内に含まれる情報は、表面情報124の内に直接含まれることができる。] 図1B
[0024] グラフィクス処理システム102は、表面情報ストレージデバイス112を含む。グラフィックスプロセッサ110、制御プロセッサ108、及びディスプレイプロセッサ114はそれぞれ、表面情報ストレージデバイス112に操作的に結合されているので、これらのプロセッサのそれぞれは、ストレージデバイス112からデータを読み取るか、あるいは、ストレージデバイス112にデータを書き込む、ことができる。ストレージデバイス112はまたフレームバッファ160に結合される。フレームバッファ160は、グラフィクス処理システム102内の専用メモリであることができる。しかしながら、一態様では、図1Bで示されているように、フレームバッファ160は、メモリ104内で直接システムRAM(ランダムアクセスメモリ)を備えることができる。ストレージデバイス112は、データを保存することができるいずれの永久あるいは揮発性メモリ、例えばシンクロナス動的ランダムアクセスメモリ(SDRAM)であってもよい。] 図1B
[0025] ストレージデバイス112は、1以上の表面データ115A−115N(集約的には115)と、1以上の表面フォーマットデータ116A−116N(集約的には116)、そして1以上の表面変換データ117A−117N(集約的に117)を含むことができる。グラフィクス処理システム102内で作成される各表面は、表面データ115、表面フォーマットデータ116、及び表面変換データ117内でその表面についての関連情報(associated information)を有する。表面は、RGB(赤、緑、青)カラースペースあるいはYCbCr(輝度、青色差、赤色差)カラースペースのような多くの異なるカラースペースのうちの1つの中の表面であることができる。表面は、EGL(埋め込み型グラフィックスライブラリ)のようなプラットフォームインタフェース層によって作成されることができる。このプラットフォームインタフェース層は、クライアントレンダリング・アプリケーションプログラムインタフェース(API)と、根本的なネイティブプラットフォームレンダリングAPI(underlyingnative platform rendering API)との間のインタフェースとして役に立ち、そしてそれは、APIライブラリ120内に含まれることができる。]
[0026] 表面データ115は、1以上のカラーコンポーネント(カラースペースと関連づけられる)と、例えばグラフィクスプロセッサ110による表面レンダリングの間に生成されることができる他のレンダリングデータと、を含む。表面データ115は、ストレージデバイス112内で、予め決定されたあるいは順序づけられた方法で、フォーマット化されてもよく、あるいは、パッキングされてもよい。例えば、表面のためのカラーコンポーネントデータは、表面データ115内で、インタリーブされた、平面の、擬似平面の(pseudo-planar)、タイルされた(tiled)、階層的にタイルされた(hierarchical tiled)、あるいは他のパッキングのフォーマット(otherpacking format)、を使用してパッキングされることができる。表面フォーマットデータ116は、下記で詳細に説明されるように、表面データ115内に含まれるデータのフォーマットレイアウトを指定する情報を含む。表面フォーマットデータ116は、EGLのようなプラットフォームインタフェース層によって指定されることができる。一態様では、表面データ115は、表面フォーマットデータ116によって規定されるレイアウトで、フォーマット化される、あるいは、パッキングされることができる。]
[0027] 表面変換データ117は、グラフィクス処理システム102内で作成される表面についての変換情報を提供する。ある場合には、表面は、異なるフォーマットへと変換される必要がありうる。例えば、YCbCr表面(すなわち、YCbCrカラースペース内で作成された表面)は、ディスプレイデバイス106上でディスプレイされる前に、RGBフォーマットへと変換される必要がありうる。ディスプレイプロセッサ114は、このような変換を直接扱うことができてもよい。変換プロセスの間にさらなるフレキシビリティを提供するために、表面変換データ117もまた提供される。グラフィクス処理システム102は、ディスプレイプロセッサ114に加え、変換プロセスを合理化するために表面変換データ117を使用するように構成されてもよく、またより高いフレームレートで、及び/または、より低い電力消費量を用いて、ディスプレイプロセッサ114がフレームバッファ160内の情報のフレームを処理することを可能にすることができる。]
[0028] グラフィクス処理システム102内で作成される各表面は、一態様にしたがって、表面データ115、表面フォーマットデータ116、及び表面変換データ117内で、関連情報を有する。例えば、第1の作成された表面は、関連づけられた、表面データ115A、表面フォーマットデータ116A、及び表面変換データ117Aを有することができる。表面データ115Aは、表面フォーマットデータ116Aによって(あるいは、それにしたがって)指定されたレイアウトで保存されてもよく、表面変換データ117Aにしたがって異なるカラースペースの新しい表面データへと変換されることができる。第2の作成された表面は、関連づけられた、表面データ115N、表面フォーマットデータ116N、及び表面変換データ117N、を有することができる。したがって、ストレージデバイス112は、グラフィクス処理システム102内で多くの異なる表面と関連づけられる、表面情報を保存することができる。各作成された表面は、個別フォーマット及び変換データを有してもよく、ディスプレイデバイス106上で使用され最終的にディスプレイされる、表面のタイプ及びフォーマットにおいて、増大されたフレキシビリティを提供する。]
[0029] 一態様では、表面フォーマットデータ116A−116Nは、表面データのためのフォーマットレイアウトを指定することができる。例えば、表面フォーマットデータ116Aは、表面データ115Aのフォーマットレイアウトを指定することができる。フォーマットレイアウトは、与えられたカラースペース内の表面データ115Aの個々のカラーコンポーネントのオーダリング(ordering)を示すことができる。例えば、表面データ115AがRGBの表面データを備える場合には、表面フォーマットデータ116Aは、表面データ115AのR,G,及びBのカラーコンポーネントのオーダリングを示すフォーマットレイアウトを指定することができる。同様に、表面データ115AがYCbCrの表面データを備える場合には、表面フォーマットデータ116Aは、Yカラーコンポーネント、Cbカラーコンポーネント、Crカラーコンポーネント、あるいは、ひょっとすると表面データ115AのA(透明)カラーコンポーネントすら、のオーダリングを示しているフォーマットレイアウト、を指定することができる。YCbCrデータのケースでは、サンプリング情報もまた、表面フォーマットデータ116A内に提供されることができる。したがって、表面フォーマットデータ116Aは、表面データ115A内のカラーコンポーネントの様々な異なるストレージあるいはパッキングパターンについてのパターン情報、例えば、インタリーブされたパターン、平面パターン、擬似平面パターン、タイルされたパターン、階層的にタイルされたパターン、及び同様なもの、を提供することができる。表面フォーマットデータ116A−116Nは、ディスプレイプロセッサ114に提供されることができるので、ディスプレイプロセッサ114は、表面データ115A−115Nを処理することができる。]
[0030] ディスプレイプロセッサ114は、マルチプルグラフィックス表面について、ストレージデバイス112から出力データを読み取ることができる。いずれの与えられた表面について、ディスプレイプロセッサ114は、関連づけられた、表面データ、表面フォーマットデータ、及び表面変換データを読み取ることができる。例えば、ディスプレイプロセッサ114は、1つの表面と関連づけられる、表面データ115A、表面フォーマットデータ116A、及び表面変換データ117A、を読み取ることができる。ディスプレイプロセッサ114は、表面データ115A内に含まれる情報(例えばインタリーブされた、平面の、擬似平面の、あるいは他の形式のような、パッキングされた形式でデータを含むことができる)の、フォーマットあるいはパターンを解釈するために、パターン情報として表面フォーマットデータ116Aを使用することができる。ディスプレイプロセッサ114は、表面データ115Aを、例えばRGBフォーマットのような別のフォーマットにどのように変換するかを決定するために、表面変換データ117Aをさらに使用することができる。]
[0031] 表面変換データ117Aは、下記で詳細に説明されるように、クランプ(clamp)、バイアス及び/またはガンマに関する値あるいは情報を含むことができ、カラー変換マトリクスもまた含むことができる。様々な異なる値は、ユーザによって使用され構成されることができる。あるケースでは、国際標準規格に対応する値がデフォルト値(default values)として使用されることができる。国際標準規格ITU601及び656は、標準画質テレビ(TV)のための、RGBカラースペースと他のビデオカラースペース(例、YCbCr)間で変換するカラースペース変換マトリクスと標準バイアス値を提供する。内部標準規格ITU709は、標準画質TVのための、RGBカラースペースと他のビデオカラースペース間で変換するカラースペース変換マトリクスと標準バイアス値を提供する。]
[0032] ディスプレイプロセッサ114は、ディスプレイデバイス106を駆動するための、表面のレンダリングされたグラフィクスフレーム上でポストレンダリング関数(post-rendering functions)を実行することができるプロセッサである。ポストレンダリング関数は、スケーリング、回転、ブレンディング、カラーキーイング、及び/または、オーバーレイを備えることができる。例えば、ディスプレイプロセッサ114は、いくつかのブレンディングモードのうちの1つを使用することによって表面を組み合わせることができ、例えば、一定のアルファブレンディングを備えたカラーキーイング(color keying with constant alpha blending)、一定のアルファブレンディングなしのカラーキーイング(color-keying without constant alpha blending)、フル表面一定アルファブレンディング(full surface constant alpha blending)、あるいは、フル表面ピクセルあたりのアルファブレンディング(full surface per-pixel alpha blending)、がある。そのようなポストレンダリング関数を実行するとき、ディスプレイプロセッサ114は、表面データ115、表面フォーマットデータ116、及び/または、表面変換データ117を使用することができる。]
[0033] ディスプレイプロセッサ114は、ディスプレイデバイス106上でディスプレイされる予定であるフレームバッファ160においてグラフィクスフレーム上へとグラフィクス表面をオーバーレイすることができる。各グラフィックス表面がオーバーレイされるレベルは、グラフィックス表面について定義された表面レベルによって決定される。この表面レベルは、例えばアプリケーション命令118によって、ユーザプログラムによって定義されることができる。表面レベルは、レンダリングされた表面と関連づけられたパラメータとして保存されることができる。]
[0034] 一態様では、表面レベルは、いずれの数としても定義されてもよく、数が高ければ高いほど、ディスプレイされたグラフィクスフレーム上で表面がディスプレイされるのも高くなる(the higher on the displayed graphics frame the surface will be displayed)。すなわち、2つの表面の部分がオーバーラップするシチュエーションにおいて、より高い表面レベルを備えた表面のオーバーラッピング部分が、より低い表面レベルを備えたいずれの表面のオーバーラッピング部分の代わりにディスプレイされる。単純な例として、デスクトップコンピュータ上で使用されるバックグラウンドイメージは、デスクトップ上のアイコンよりも、より低い表面レベルを有するであろう。いくつかのケースでは、表面レベルは、オーバーラップする2つの表面が一緒にブレンドされることができるように透明情報で組み合わせられることができる。これらのケースでは、カラーキーイングが使用されることができる。第1の表面におけるピクセルがキーカラーと整合しないという条件において、アルファ(透明)ブレンドがイネーブルにされない場合には、第1の表面は、出力ピクセルとして選ばれることができる。アルファブレンディングがイネーブルにされる場合には、通常通り、第1の及び第2の表面のピクセルがブレンドされることができる。第1の表面のピクセルがキーカラーと整合するという条件において、第2の表面のピクセルが選択され、アルファブレンディングは実行されない。]
[0035] 一態様では、制御プロセッサ108は、アドバンスドRISC(reduced instruction set computer)マシン(ARM)プロセッサであってもよく、例えば、カリフォルニア州のサンディエゴのクァルコム社によって設計されたモバイル局モデムに埋め込まれたARM11プロセッサであってもよい。一態様では、ディスプレイプロセッサ114は、クァルコム社によって設計されたモバイル局モデムに埋め込まれていたモバイルディスプレイプロセッサ(MDP)であってもよい。]
[0036] 図2Aは、一態様にしたがって、YCbCr(輝度、青色差、赤色差)カラースペース、及び/または、RGB(赤、緑、青)カラースペース、における表面作成のためのマルチフォーマットサポートをインプリメントするために使用されることができるデバイス200を図示するブロック図である。デバイス200はまた、透明Aを備えたYCbCr表面のための表面作成をサポートすることができる。下記の説明では、用語「YCbCr」は、YCbCrカラースペースを指すように一般的に使用されるであろう、なお、YCbCr表面は、透明データを含んでもよく、あるいは、含まなくてもよい。この態様では、図2Aで示されるデバイス200は、図1Aで示されるデバイス100の実例の例である。デバイス200は、グラフィクス処理システム202、メモリ204、及びディスプレイデバイス206を含む。図1Aで示されるメモリ104と同様に、図2のメモリ204は、アプリケーション命令218、APIライブラリ220、及びドライバ222のためのストレージスペースを含む。メモリ204はまた、グラフィクス処理システム202によって作成されるYCbCr及び/またはRGB表面についての、YCbCr及び/またはRGB表面情報224を含む。YCbCr/RGB表面情報224は、YCbCr/RGB表面情報についてストレージデバイス213へとロードされることができ、そして、ストレージデバイス213からの更新された情報は、メモリ204において、YCbCr/RGB表面情報224で保存されることができる。] 図1A 図2A
[0037] 図1Aで示されるグラフィクス処理システム102と同様に、図2のグラフィクス処理システム202は、プロセッサ208、グラフィックスプロセッサ210、ディスプレイプロセッサ214、YCbCr/RGB表面情報のためのストレージデバイス213、及びフレームバッファ260を含む。プロセッサ208は、制御、あるいは汎用、プロセッサであることができる。一態様では、プロセッサ208は、システムCPU(中央処理装置)を備えることができる。制御プロセッサ208、グラフィックスプロセッサ210、及びディスプレイプロセッサ214はそれぞれ、ストレージデバイス213に操作的に結合され、そして、それぞれ、ストレージデバイス213にデータを書き込む、あるいは、ストレージデバイス213からデータを読み取ることができる。フレームバッファ260はまた、ストレージデバイス213に結合される。一態様では、ストレージデバイス213は、図1Aで示されるストレージデバイス112のようなより大きなストレージデバイス内に含まれることができる。] 図1A
[0038] 一態様では、表面情報ストレージデバイス213内に含まれる情報は、メモリ204内に直接含まれることができる。この態様では、図2Dで示されているように、表面情報ストレージデバイス213内に含まれる情報は、表面情報224内に直接含まれることができる。フレームバッファ260は、グラフィクス処理システム202内の専用メモリであることができる。しかしながら、一態様では、図2Dで示されているように、フレームバッファ260は、メモリ204内で直接システムRAM(ランダムアクセスメモリ)を備えることができる。] 図2D
[0039] ストレージデバイス213は、1以上のYCbCrあるいはRGB表面データ215A−215N(集合的に215)、1以上のYCbCrあるいはRGB表面フォーマットデータ216A−216N(集合的に216)、及び1以上のYCbCrあるいはRGB表面変換データ217A−217N(集合的に217)を含む。グラフィクス処理システム202内で作成される、各YCbCrあるいはRGB表面(すなわちYCbCrあるいはRGBカラースペースにおける表面)は、表面データ215、表面フォーマットデータ216、及び表面変換データ217内で、その表面についての関連情報を有する。YCbCrあるいはRGBの表面は、EGL(埋め込み型グラフィックスライブラリ)のようなプラットフォームインタフェース層によって作成されることができる。このプラットフォームインタフェース層は、クライアントレンダリング・アプリケーションプログラムインタフェース(API)と、根本的なネイティブプラットフォームレンダリグAPIと、の間のインタフェースとしてサービス提供しており、そしてそれは、APIライブラリ220内に含まれることができる。]
[0040] 表面データ215は、YCbCr及び/またはRGBカラーコンポーネント、そして例えばグラフィクスプロセッサ210による表面レンダリングの間に生成されることができる他のレンダリングデータ、を含む。表面データ115(図1A)と同様に、表面データ215は、ストレージデバイス213内で、予め決定された、あるいは、順序づけされた方法で、フォーマット化されてもよく、あるいは、パッキングされてもよい。表面フォーマットデータ216は、下記でより詳細に説明されるように、表面データ215内に含まれるデータのフォーマットレイアウトを指定する、情報を含む。表面フォーマットデータ216は、EGLのようなプラットフォームインタフェース層によって指定されることができる。] 図1A
[0041] 表面変換データ217は、ディスプレイデバイス206上でディスプレイされる前に、別のフォーマットへの、グラフィクス処理システム202内で作成される表面についての変換情報を提供する。例えば、表面変換データ217は、YCbCr表面をRGBフォーマットへと変換するために使用されることができる、あるいは、RGB表面をYCbCrフォーマットへと変換するために使用されることができる。変換プロセスの間にさらなるフレキシビリティを提供するために、表面変換データ217が提供される。グラフィクス処理システム202は、ディスプレイプロセッサ214に加え、変換プロセスを合理化するために表面変換データ217を使用することができ、また、ディスプレイプロセッサ214がより高いフレームレートで、及び/または、より低い消費で、フレームバッファ260内で情報のフレームを処理することを可能にすることができる。]
[0042] 図2Bは、一態様にしたがって、図2Aで示される、APIライブラリ220のさらなる詳細を図示しているブロック図である。図2Aを参照して上記で説明されているように、APIライブラリ220は、グラフィクスプロセッサ210、コントロールプロセッサ208、及び/または、ディスプレイプロセッサ214、によるアプリケーション実行の間に、アプリケーション命令218によって、メモリ204に保存されリンク付けされてもよく、あるいは、参照されてもよい。図2Cは、一態様にしたがって、図2Aで示されるドライバ222のさらなる詳細を図示するブロック図である。ドライバ222は、グラフィクスプロセッサ210、コントロールプロセッサ208、及び/または、ディスプレイプロセッサ214によるアプリケーション実行の間に、アプリケーション命令218及び/またはAPIライブラリ220によって、メモリ204に保存されリンク付けされてもよく、あるいは参照されてもよい。] 図2A 図2B 図2C
[0043] 図2Bでは、APIライブラリ220は、OpenGLESレンダリングAPI’s230、OpenVGレンダリングAPI’s232、EGL API’s234、及び根本的なネイティブプラットフォームレンダリングAPI’s239を含む。図2Cで示されるドライバ222は、OpenGL ESレンダリングドライバ240、OpenVGレンダリングドライバ242、EGLドライバ244、及び根本的なネイティブプラットフォームレンダリングドライバ249、を含む。OpenGL ESレンダリングAPI230は、2D及び3Dレンダリング関数のような、OpenGL ESにサポートされたレンダリング関数を提供するために、グラフィクス処理システム202によるアプリケーション実行の間に、アプリケーション命令218によって起動されたAPIである。OpenGL ESレンダリングドライバ240は、グラフィクス処理システム202におけるOpenGL ESレンダリング関数の低レベルドライバーサポートのためのアプリケーション実行の間に、アプリケーション命令218、及び/または、OpenGL ESレンダリングAPI’s230によって起動される(invoked)。] 図2B 図2C
[0044] OpenVGレンダリングAPI232は、2Dベクトルグラフィックス・レンダリング関数のようなOpenVGによってサポートされたレンダリング関数を提供するためにアプリケーション実行の間にアプリケーション命令218によって起動されたAPIである。OpenVGレンダリングドライバ242は、グラフィクス処理システム202におけるOpenVGレンダリング関数の低レベルドライバーサポートのためのアプリケーション実行の間に、アプリケーション命令218及び/またはOpenVGレンダリングAPI’s232によって起動される。]
[0045] EGLAPI’s234(図2B)及びEGLドライバ244(図2C)は、グラフィクス処理システム202におけるEGL関数のためのサポートを提供する。一態様では、EGL拡張は、EGLAPI’s234及びEGLドライバ244内に組込まれることができる。図2B−2Cの例では、表面オーバーレイと表面情報機能(例えば、YCbCr表面情報機能)についてのEGL拡張が提供されている。したがって、EGL表面オーバーレイ拡張の場合、表面オーバーレイAPI236は、EGLAPI’s234内に含まれ、表面オーバーレイドライバ246は、EGLドライバ244内に含まれる。同様に、EGL表面情報拡張の場合、表面情報API238(例えばYCbCr表面情報APIを含むことができる)は、EGLAPI’s234内に含まれ、表面情報ドライバ248はEGLドライバ244内に含まれる。] 図2B 図2C
[0046] EGL表面オーバーレイ拡張は、ディスプレイデバイス206上でディスプレイされる、マルチプルグラフィクス表面(例えば、2D表面、3D表面、及び/または、ビデオ表面)のオーバーレイのための表面オーバーレイスタックを提供する。グラフィックス表面は、それぞれ、スタック内で、関連づけられた表面レベル(associated surface level)を有することができる。表面のオーバーレイは、それによって、スタック内の表面のオーバーレイオーダーにしたがって達成される。表面オーバーレイの例は、図3Bで示され、下記でより詳細に議論されるだろう。] 図3B
[0047] 一態様では、EGL表面情報拡張は、グラフィクス処理システム202内で表面作成のためのマルチフォーマットサポートを提供し、特にYCbCr表面のためのサポートを提供することができる。上記で説明されているように、ストレージデバイス213は、表面データ215(YCbCrの表面データを含むことができる)、表面フォーマットデータ216(YCbCr表面用のフォーマットデータを含むことができる)、及び表面変換データ217(YCbCr表面をRGBフォーマットに変換するデータを含むことができる)を含む。EGL表面情報拡張は、ストレージデバイス213へと入ってくる、そしてストレージデバイス213から出て行く、データについてのサポートを提供し、そして、グラフィクス処理システム202内で、表面レンダリング、データ変換(例えば、YCbCrからRGBへの変換)、及び表面のディスプレイ、の間に、制御プロセッサ208、グラフィクスプロセッサ210、及び/または、ディスプレイプロセッサ214のうちの1つまたは複数によって必要とされうる情報を提供する。]
[0048] 図2Bで示されているように、APIライブラリ220はまた、根本的なネイティブプラットフォームレンダリングAPI’s239を含む。API’s239は、アプリケーション命令218の実行の間にデバイス200によってインプリメントされる根本的なネイティブプラットフォームによって提供されるAPI’sである。EGL API’s234は、根本的なネイティブプラットフォームレンダリングAPI’s239と、双方のOpenGLESレンダリングAPI’s230及びOpenVGレンダリングAPI232との間で、プラットフォームインタフェース層を提供する。図2Cで示されているように、ドライバ222は、根本的なネイティブプラットフォームレンダリングドライバ249を含む。ドライバ249は、アプリケーション命令218及び/またはAPIライブラリ220の実行の間に、デバイス200によってインプリメントされる根本的なネイティブプラットフォームによって提供されるドライバである。EGLドライバ244は、根本的なネイティブプラットフォームレンダリング249と、双方のOpenGL ESレンダリングドライバ240及びOpenVGレンダリングドライバ242と、の間でプラットフォームインタフェース層を提供することができる。] 図2B 図2C
[0049] 図3Aは、一態様にしたがって、表面についての表面情報の例を図示しているブロック図であり、そしてそれは、1以上のYCbCrあるいはRGB表面を含むことができる。図3Aでは、表面300A−300Nが表わされている。各表面の300A−300Nは、グラフィクス処理システム102によって処理されてもよく、例えば、図1Aあるいは図1Bで示されるディスプレイデバイス106上で最終的にディスプレイされることができる表面である。これらの表面300A−300Nはまた、図2Aあるいは図2Dで示されるグラフィクス処理システム202によって処理されることができる。しかしながら、図3A−3Bの下記の説明だけのために、表面300A−300Nはグラフィクス処理システム102によって処理される、ということは想定される。] 図1A 図1B 図2A 図2D 図3A
[0050] 各表面300A−300Nは、RGBあるいはYCbCrカラースペースのような与えられたカラースペースで表わされることができる、2D表面、3D表面あるいはビデオ表面を備えることができる。フレームバッファ160内でキャプチャされ、ディスプレイデバイス106上でディスプレイされる、データの各フレーム内で、表面300A−300Nは、オーバーレイオーダーによってオーバーレイされることができる。この一例は、図3Bで示されている。そのような方法で、RGB及びYCbCrのカラースペースを含んでいる様々な異なるカラースペースにおける、2D表面、3D表面、及び/または、ビデオ表面は、表面オーバーレイスタックでオーバーレイされ、ディスプレイデバイス106上で一緒にディスプレイされることができる。] 図3B
[0051] 各表面300A−300Nは、対応する表面情報と関連づけられる。例えば、図3Aでは、表面300Aは、表面情報302Aと関連づけられるが、表面300Nは、表面情報302Nと関連づけられる。表面情報302A−302Nは、ストレージデバイス112内で保存されることができる。] 図3A
[0052] 表面情報302Aは、表面データ315A、表面フォーマットデータ316A、及び表面変換データ317Aを含む。同様に、表面情報302Nは、表面データ315N、表面フォーマットデータ316N、及び表面変換データ317Nを含む。一態様では、表面データ315A−315Nは、表面データ115A−115Nと類似しており、表面フォーマットデータ316A−316Nは、表面フォーマットデータ116A−116Nと類似しており、及び表面変換データ317A−317Nは、表面変換データ117A−117Nと類似している。したがって、各表面300A−300Nは、関連づけられた表面データ(例えば、パッキングされたフォーマットで保存されることができるレンダリングデータ)、表面データのフォーマットを指定する表面フォーマットデータ、必要であればRGBフォーマットへと表面データ(例えばYCbCr表面データ)の変換情報を指定する表面変換データ、を有するので、ディスプレイプロセッサ114によって処理され、ディスプレイデバイス106上でディスプレイされることができる。]
[0053] 図3Bは、一態様にしたがって、ディスプレイデバイス106上でディスプレイされることができる図3Aの表面300A及び300Nと関連づけられた、オーバーレイされた表面データ(overlaid surface data)の例を図示するブロック図である。表面300A−300Nのうちの1つまたは複数は、YCbCr表面を備えることができる。表面300Aは、関連づけられた表面情報302Aを有し、表面300Nは、関連づけられた表面情報302Nを有している。表面情報302A及び302Nは、ストレージデバイス112内で保存されることができる。] 図3A 図3B
[0054] 図3Bの例では、ディスプレイプロセッサ114がストレージデバイス112から表面300Aについての情報302Aを読み取るということが想定される。ディスプレイプロセッサ114は、表面データ315Aを得て、そして、表面フォーマットデータ316A及び表面変換データ317Aを使用して、そのようなデータを処理することができる。ディスプレイプロセッサ114は、そのようなデータを処理するときに、表面データ315Aのパッキングされたレイアウトのフォーマットを解釈するために、表面フォーマットデータ316Aを使用する。さらに、ディスプレイプロセッサ114は、表面データ315AのRGB表面データ325Aへの(すなわち、RGBフォーマットへの)変換において援助するために表面変換データ317Aを使用し、必要であれば、フレームバッファ160に書き込まれることができる。(この例では、ディスプレイデバイス106がLCDデバイスであることが想定される。勿論、他のシナリオでは、ディスプレイデバイス106は、TVデバイスのような他の形式のディスプレイデバイスを備えることができる。)
同様に、ディスプレイプロセッサ114は、表面300Nのための表面情報302Nを読み取り、表面フォーマットデータ316N及び表面変換データ317Nを使用することにより、表面データ315NからRGB表面データ325Nを生成することができる。ディスプレイプロセッサ114は、フレームバッファ160へとRGB表面データ325Nを書き込むことができる。このように、RGB表面データ325A及び325Nは、ディスプレイデバイス106上でディスプレイされる予定であるデータの1フレーム内に含まれることができる。] 図3B
[0055] 一態様では、RGB表面データ325A及び325Nは、表面オーバーレイスタック内に含まれることができる。本態様では、ディスプレイプロセッサ114は、スタック内の別個の表面レベルと、RGBの表面データ325A及び325Nのそれぞれを関連づけてもよく、それによって、RGB表面データ325A及び325Nについてのオーバーレイオーダーをインプリメントする。RGB表面データ325Aは、表面300Aについての表面データの1フレームと関連づけられており、RGB表面データ325Nは、表面300Nについての表面データの1フレームと関連づけられる。]
[0056] 一態様では、表面300A及び300Nのレベル、あるいは、それらが特定のレベルと結びつけられるシーケンス(the sequence in which they are bound to a particular level)は双方とも、表面オーバーレイプロセスの間に考慮されうる。あるケースでは、マルチプル表面は、特定の層と結びつけられることが出来る。層は、バックからフロントへ(ほぼ−からほぼ+へ)処理されうる。与えられた層内で、表面は、それらが層と結びつけられたシーケンスにおいて処理される。]
[0057] 図3Bでは、RGB表面データ325A及び325Nは、ユーザに見えるスクリーンエリア330内のディスプレイデバイス106上でディスプレイされることができる。RGB表面データ325A及び325Nは、ディスプレイプロセッサ114によって使用されるオーバーレイオーダーに基づいて、オーバーレイされた表面としてスクリーンエリア330内でディスプレイされることができる。RGB表面データ325A及び325Nは、フレームバッファ160内に含まれるような同じ位置あるいは関係で、ディスプレイされてもよく、ディスプレイされなくてもよい。ディスプレイプロセッサ114は、ディスプレイデバイス106上の表面のディスプレイについていずれの表面オーバーレイレベルを割当てるために、表面オーバーレイスタックを使用することができる。結果として、グラフィクス処理システム102は、ディスプレイデバイス206上でユーザにディスプレイするためにオーバーレイされうる、2D、3D及び/またはビデオ表面データを提供することができる。例えば、図3Bの例において表面300AがRGB 3D表面であり、表面300NがYCbCrビデオ表面である場合、これらの表面と関連づけられた、3D及びビデオ表面データは、ディスプレイデバイス106上でディスプレイされてもよい(なお、YCbCrビデオ表面データは、ディスプレイされる前に、RGBフォーマットへと変換される)。いくつかの態様では、2D、3D、及び/またはビデオ表面データのいずれの組み合わせは、1以上のカラースペースについていずれの定義された表面フォーマットを有し、ディスプレイデバイス106上でオーバーレイされてもよい。] 図3B
[0058] 図4は、一態様にしたがって、図1Aあるいは図1Bのグラフィクス処理システム102で示される、制御プロセッサ108、グラフィックスプロセッサ110、及び/または、ディスプレイプロセッサ114のうちの1つまたは複数によって、あるいは、図2Aあるいは図2Dのグラフィクス処理システム202で示される、制御プロセッサ208、グラフィックスプロセッサ210、及び/または、ディスプレイプロセッサ214のうちの1つまたは複数によって、実行されることができる方法のフロー図である。下記の説明を説明するだけのために、図4で示される方法は、グラフィクス処理システム102における1以上のプロセッサによって実行されるということが想定される。] 図1A 図1B 図2A 図2D 図4
[0059] 最初に、制御プロセッサ108、グラフィックスプロセッサ110、及び/または、ディスプレイプロセッサ114のうちの1つまたは複数は、例えばEGLのようなプラットフォームインタフェース層を介してグラフィックス表面を生成する(図4の400)。プラットフォームインタフェース層は、インタフェースとしてサービス提供しており、OpenGLESあるいはOpenVGのようなクライアントレンダリングAPIと、根本的なネイティブプラットフォームレンダリングAPIとの間に位置する。カラースペースがYCbCrカラースペースを備える場合には、表面は、YCbCr表面であってもよい。カラースペースがRGBカラースペースを備える場合には、表面は、RGB表面であってもよい。] 図4
[0060] 制御プロセッサ108、グラフィックスプロセッサ110、及び/または、ディスプレイプロセッサ114のうちの1つまたは複数は、プラットフォームインタフェース層を使用して、カラースペース内の表面と関連づけられた表面データのフォーマットレイアウトを指定することができる(図4の402)。フォーマットレイアウトは、カラースペース内の表面データの1以上のカラーコンポーネントの、レイアウト、例えばオーダリング、を示す。例えば、表面がYCbCr表面である場合、フォーマットレイアウトは、表面データの、個々のYカラーコンポーネント、Cbカラーコンポーネント、Crカラーコンポーネント、及び恐らくA(透明)カラーコンポーネントのオーダリングを示すことができる。表面がRGB表面である場合、フォーマットレイアウトは、表面データの、個々のR、G、及びBカラーコンポーネントのオーダリングを示すことができる。表面データ及びフォーマットレイアウト(フォーマットデータ)の両方は、例えばストレージデバイス112において、保存されることができる。表面データのフォーマットレイアウトはまた、ディスプレイデバイス106のようなディスプレイデバイス上で表面をディスプレイする目的で、パターン情報として提供されることができる。] 図4
[0061] 一態様では、フォーマットレイアウトは、第1の平面内の1以上のカラーコンポーネントの第1グループの第1レイアウトを示すことができる。フォーマットレイアウトは、第1の平面とは異なる第2の平面内の1以上のカラーコンポーネントの第2グループの第2レイアウトをさらに示すことができる。第1グループは、複数の、1以上のカラーコンポーネントを含むことができ、第1のレイアウトは、第1の平面内の第1のグループのカラーコンポーネントのオーダリングを示すことができる。様々な異なるシナリオでは、いずれの数のフォーマットレイアウトも、いずれの数の異なる平面内で指定されることができる。]
[0062] 図4を再び参照すると、404で、プロセッサの1つまたは複数は、異なるカラースペース内の変換データ(converted data within a different color space)へと、表面と関連づけられた表面データを変換することにおいて使用するために、カラー変換情報を指定することができる。例えば、カラースペースがYCbCrカラースペースであり、異なるカラースペースがRGBカラースペースである場合、カラー変換情報は、YCbCr表面データをRGB表面データへと変換するために使用されることができる。] 図4
[0063] 406で、1以上のプロセッサが、表面データを生成するために表面の表面レンダリングを実行することができる。この表面データは、指定されたフォーマットレイアウトにしたがって保存されることができる。]
[0064] 図5は、図1Aあるいは図1Bのグラフィクス処理システム102で示された、コントロールプロセッサ108、グラフィクスプロセッサ110、及び/または、ディスプレイプロセッサ114のうちの1つまたは複数によって、あるいは、図2Aあるいは図2Dのグラフィクス処理システム202で示された、コントロールプロセッサ208、グラフィクスプロセッサ210、及び/または、ディスプレイプロセッサ214のうちの1つまたは複数によって、実行されることができる方法のフロー図である。下記の説明を説明するだけのために、図5で示される方法はグラフィクス処理システム102における1以上のプロセッサによって実行されるということが想定される。] 図1A 図1B 図2A 図2D 図5
[0065] 最初に、制御プロセッサ108、グラフィックスプロセッサ110、及び/または、ディスプレイプロセッサ114のうちの1つまたは複数は、第1のフォーマットレイアウトを有する第1のグラフィックス表面(500)と第2のフォーマットレイアウトを有する第2のグラフィックス表面(502)を作成する。第1及び第2の表面は、ある場合においては、それぞれ、2D表面、3D表面、あるいはビデオ表面を備えることができる。プロセッサのうちの1つまたは複数は、第1表面の表面レンダリングを実行し、第1のフォーマットレイアウトにしたがってストレージデバイス112のようなストレージデバイスにおいて関連づけられた表面データを保存する(504)。506で、第2表面の表面レンダリングが実行され、関連づけられた表面データは、第2のフォーマットレイアウトにしたがって保存される。508で、プロセッサのうちの1つまたは複数は、オーバーレイオーダーに基づいて、第1の表面と第2の表面をオーバーレイする。そのような方法で、マルチプル表面と関連づけられた表面データは、表面オーバーレイスタックへとディスプレイプロセッサ114によってストレージデバイス112から読み取られることができ、オーバーレイオーダーにしたがって、ディスプレイデバイス106上でディスプレイするために提供されることができる。]
[0066] 上記で議論されているように、表面の作成及び使用のためのマルチフォーマットサポートは、システム102及び/またはシステム202(図2A)内の1以上のプロセッサによってインプリメントされることができる。一態様では、表面の作成及び使用のためのマルチフォーマットサポートをインプリメントする機能は、1以上のプロセッサによって実行された時、APIライブラリ120及び/またはドライバ122内に、あるいは、APIライブラリ220及び/またはドライバ222(図2A)内に含まれることができる。例えば、そのような機能は、表面情報API238(図2B)内に、及び/または、表面情報ドライバ248(図2C)内に、含まれることができる。一態様では、この機能は、EGL拡張のようなプラットフォームインタフェース層拡張の一部として提供されることができる。下記の説明を説明するだけのために、そのような機能はEGL拡張(すなわち、EGL仕様に対する拡張)の一部として提供されるということが想定される。] 図2A 図2B 図2C
[0067] 一態様では、EGL拡張は、YCbCrフォーマットの様々な形式をサポートすることができる構成をエクスポートするため(exporting)に提供される。単なる構成の変更に加えて、その表面がディスプレイデバイス106にあとでポストされる場合には、拡張はまた、RGBへのカラーフォーマット変換に必要とされる情報に加えてYCbCrデータのフォーマットレイアウトをさらに指定するメカニズムも定義することができる。]
[0068] あるケースでは、ディスプレイデバイス106は、LCDよりもむしろTVディスプレイデバイスであってもよい。このケースでは、オーバーレイスタック内の表面が処理されるときに、RGB表面は、YCbCr表面に変換されることができる。]
[0069] 本態様のEGL拡張内では、追加YCbCrフォーマットデータは、EGLのEGL_COLOR_BUFFER_TYPEフィールドがEGL_LUMINANCE_BUFFERに設定される構成に対して、適用可能であってもよい。このケースでは、EGL_SAMPLESフィールドは、YCbCr表面のためのサンプリング比を示すために使用される。]
[0070] 図6は、一態様にしたがって、YCbCr表面サンプリング構成情報600がYCbCr表面についての構成及びサンプリング情報を示すために使用される、そのようなケースの一例を図示する。本態様では、YCbCr表面サンプリング構成情報600は、EGL_SAMPLESフィールドのための情報を備える。図6で示されているように、最上位バイト(8ビット)がフラグに使用される。EGL_YCBCR_ENABLE、EGL_CBCR_COSITE及びEGL_CBCR_OFFSITEは、使用されうるフラグ、あるいはトークン(tokens)である。] 図6
[0071] 次の2ニブル(なお、1ニブルは4ビットを備える)は、それぞれ、水平及び垂直のサブサンプリング要因を定義する。より低い(すなわち、最下位)4ニブルは、それぞれ、輝度(Y)、青い色度差(Cb)、赤い色度差(Cr)、及びアルファ(A)透明サンプリング要因、を定義する。一態様では、EGL_YCBCR_ENABLEフラグあるいはトークンは、マルチサンプリングされた輝度あるいは輝度アルファ表面からYCbCr表面を区別するために使用されることができる。]
[0072] 一態様では、EGL拡張は、YCbCr表面フォーマットと変換処理(「設定(set)」と「得る(get)」関数を含んでいる)に関する4つの新しい関数を提供することができ、そしてそれは、下記で詳細に説明される。これらの4つの関数のための関数の宣言(function declaration)の例は、以下に示される:]
[0073] eglSurfaceYCbCrFormatQUALCOMM関数は、EGL YCbCr表面のためのYCbCrフォーマットをセットする。eglGetSurfaceYCbCrFormatQUALCOMM関数は、EGL YCbCr表面のためにYCbCrフォーマットデータを得る、あるいは、戻す。eglSurfaceYCbCrConversionQUALCOMM関数は、EGL YCbCr表面から別のカラースペース、例えばRGBカラースペース、に変換するために使用されることができる様々な変換パラメータを設定する。eglGetSurfaceYCbCrConversionQUALCOMM関数は、様々な変換パラメータを得る、あるいは戻す。これらの関数の様々な態様は、下記でより詳細に説明される。]
[0074] 一態様では、EGL拡張は、追加の、新しいデータタイプ構造を提供する。これらの構造は、変換情報に加え、YCbCrの表面データのフォーマットに関する。データ構造の例は下記に示されている:]
[0075] EGL、EGLSurfaceデータ構造は、YCbCr表面について、2つの追加メンバー(two additional members)である、タイプEGLYCbCrFormat及びEGLYCbCrConversionを含むことができる。下記で詳細に説明されているように、EGLYCbCrFormatメンバーは、YCbCr表面のために情報をフォーマット化することを提供し、EGLYCbCrConversionメンバーは、YCbCr表面についてのカラー変換情報を提供する。]
[0076] 一態様では、EGL拡張は、追加トークンを提供する。これらのトークンは、下記でより詳細に説明され、16進法の形式で表わされる。これらの新しいトークンは以下のとおりである:]
[0077] EGL_YCBCR_ENABLEフラグ、あるいはトークンは、YCbCr表面を、マルチサンプリングされた輝度あるいは輝度アルファ表面から区別するために使用されることができる。色度サンプルは、輝度サンプルを用いてコサイト(co-site)(同じ場所に配置)されてもよく、あるいは、補間(オフサイト(off-site))されてもよい。コサイトトークンEGL_CBCR_COSITEあるいはオフサイトトークンEGL_CBCR_OFFSITEは、EGL_YCBCR_ENABLEトークンと、望ましいフォーマットに整合するEGL_SAMPLESについての値に特有の他のニブルで論理的に論理和されうる(may be logically or’ed)。]
[0078] 新しいYCbCr表面のための特別のYCbCrフォーマットを設定するために、関数eglSurfaceYCbCrFormatQUALCOMMは、YCbCrデータの正確なレイアウトを定義するEGLYCbCrFormatデータ構造で呼び出されることができる。データ構造内の平面アレイの各エレメントは、潜在的にインタリーブされたカラーコンポーネントの平面を表わす。EGLYCbCrPlaneFormat構造のorder変数は、その平面におけるコンポーネントのオーダリングを表すために、EGL_Y_BIT、EGL_CR_BIT、EGL_CB_BIT、あるいはEGL_ALPHA_BITのいずれかに設定される、各二ブルを有する(order変数が、未署名でありうる2つのEGLint’sのアレイとして例示的な構造で示されるにもかかわらず、様々な他のタイプ及びアレイサイズが使用されうる)。EGLYCbCrFormat構造は4つの異なる平面を定義するが、いずれの数の平面も使用されることができる。order変数は、0番目からi番目のエレメントの最上位ニブルからスタートして、うめられてもよい(may be filled out)。いったん値0を備えた1ニブルが見つかると、一態様にしたがって、パターンは、繰り返すことが想定され、それ以上、ニブルは検査されない。特定フォーマットがインプリメンテーションによってサポートされない場合、EGL_FALSEはエラーセットなしで戻されることができる。適用は、表面を現在使用するフォーマットを決定するために、eglGetSurfaceYCbCrFormatQUALCOMMを呼びだすことができる。]
[0079] 特定のYCbCrカラー変換を設定するために、関数eglSurfaceYCbCrConversionQUALCOMMは、ディスプレイデバイスに表面をポストする(posting)ときに使用する、クランプ、バイアス、カラー変換マトリクス、及びガンマ値を定義するEGLYCbCrConversionデータ構造で呼び出されることができる。アプリケーションは、現在使用しているパラメータ(例えば、クランプ、バイアス、カラー変換マトリクス、及びガンマパラメータ)を決定するためにeglGetSurfaceYCbCrConversionQUALCOMMを呼び出すことができる。カラースペース変換マトリクスは、固定小数点フォーマット(fixed-point format)を使用してもよく、行メジャーフォーマット(row major format)で保存されることができる。(EGLfixedタイプは、S15.16フォーマットを有するものとして解釈されることができる32ビットEGLintであることができる。)あるケースでは、国際標準規格に対応する値は、デフォルト値として使用されることができ、また、デフォルト・ガンマ値2.22が使用されることができる。国際標準規格ITU601及び656は、標準画質TVのための、RGBカラースペースと他のビデオカラースペース(YCbCr)の間で変換するために、カラースペース変換マトリクスと標準規格バイアス値を提供する。内部標準規格ITU709は、高画質TVのための、RGBカラースペースと他のビデオカラースペースの間で変換するために、カラースペース変換マトリクと標準規格バイアス値を提供する。しかしながら、アプリケーションとアプリケーション開発者は、RGBフォーマットへのYCbCrあるいは他のカラースページ表面の変換をカスタマイズする、クランプ、バイアス、カラー変換マトリクス、およびガンマパラメータについてのいずれの値を使用するように十分なフレキシビリティを有する。]
[0080] EGL YCbCr表面のマルチフォーマット及び変換機能をサポートするEGL拡張のインプリメンテーションの例を提供するために、次のサンプルコードが提供されおり、そしてそれは、図示のために上記でリストされる関数、構造、及びトークンのうちのいくつかを利用する。]
[0081] 上記のサンプルコードでは、属性のリストは、EGL_SAMPLESを備えたEGL_YCBCR_ENABLEフラグを使用して、最初にセットアップされる。次に、すべての整合する構成のリストが得られる。サンプルコードでは、EGL_SAMPLESについてセットアップされるフォーマットに整合する、利用可能なYCbCr表面が選択されるということが想定される。このことは、EGL_SAMPLESフィールドについての各リターン構成をクエリし、そして正しい署名を探すことにより行われることができる。サンプルコードでは、4:2:2:4(H2V1)フォーマットが選択され、変数cfgに割り当てられたということが想定される。この例示的なサンプリングフォーマットについては、EGL_SAMPLESのための署名は、図6で示されるフォーマットの場合、16進法で、0x81214224であることができる。このケースでは、EGL_YCBCR_ENABLE及びEGL_CBCR_COSITEビットが設定され、Hss(水平サブサンプリング)は2に等しく、(すなわち、色度は、水平方向に他のピクセルごとにサンプリングされる)、Vss(垂直サブサンプリング)は、1に等しく、(すなわち、色度は垂直方向にピクセルごとにサンプリングされる)、輝度サンプリングは、4つのうちの4つに等しく、青色差サンプリングは4つのうち2つに等しく、赤色差サンプリングは、4つのうちの2つに等しく、アルファサンプリングは4つのうち4つと等しい。] 図6
[0082] 次に、サンプルコードでは、pixmap(オフスクリーン)表面は、このフォーマットで作成される。pixmap表面は、A、あるいはアルファ(透明)を使用するYCbCr表面である。もちろん、表面の他の形式も作成されてもよい。]
[0083] 次に、表面データのためのフォーマットパッキングオーダーは、インタリーブされた平面YCbCrデータと、個別の平面アルファを使用して、セットアップされる。そうするために、タイプEGLYCbCrFormatの変数fmtが初期化される。平面0及び平面1のみが、この例において、フォーマットデータで占められる(populated)。もちろん、他の例では、平面の1つまたは複数は、フォーマットデータで占められてもよい。さらに、カラーコンポーネントのいずれのタイプのパターンも、各平面内で定義されてもよく、例えば、インタリーブされたパターン、平面パターン、擬似平面パターン、タイルされたパターン、階層的にタイルされたパターン、あるいは他の形式のパッキングパターンがある。さらに、いくつかの態様では、RGB表面データのためのフォーマットのような他のカラースペースフォーマットは、R、G、及びBカラーコンポーネントのためのフォーマットパッキングオーダーをセットアップするために、EGLYCbCrFormatに対して同様なデータ構造を使用して、同様な方法で定義されることができる。]
[0084] サンプルコードを再び参照すると、平面0は、Yコンポーネント、Cbコンポーネント及びCrコンポーネントのグループについてのフォーマットデータを含む。平面ゼロにおけるこの定義で、Y、Cb及びCrコンポーネントのインタリーブされたパターン、あるいはオーダリングは、order変数についてEGL_Y_BIT、EGL_CB_BIT、EGL_Y_BIT、及びEGL_CR_BITを使用して定義されており、この例では、4:2:2:4(H2V1)フォーマットが使用されるということを想定する。その後、値0は、パターンが繰り返すということを示すためにorder変数内で提供される。オフセットポインタYCbCrOffsetは、平面がメモリに恣意的に保存されるとすると、参照のために、平面ゼロに対する直接オフセットポインタとして使用される。典型的には、YCbCrOffsetは0であるが、それは必ずしもそうある必要はない。]
[0085] 平面1は、アルファ(透明)についてのフォーマットデータを含む。EGL_ALPHA_BITのみがこの平面でフォーマットをセットアップするために使用される。オフセットポインタAOffsetは、参照のために、平面1に対する直接オフセットポインタとして使用される。典型的には、AOffsetは、0ではないが、それは必ずしもそうある必要はない。]
[0086] 最後に、サンプルコードでは、表面フォーマットは、eglSurfaceYCbCrFormatQUALCOMM関数を呼び起こすことによってセットアップされる。この時点では、表面は、いずれの他のEGLの表面のように使用されることができる。表面は、2D、3Dあるいはビデオ表面を備えることができ、そしてそれは、ディスプレイデバイス106のようなディスプレイデバイス上でディスプレイするために、フレームバッファ160(図1Aあるいは図1B)のようなフレームバッファ内でデータのフレームを合成する、表面オーバーレイスタック内で1以上の追加表面(one or more additional surfaces)で組み合わせられることができる。EGLは、EGLConfig構造におけるフィールドを介して特定の表面についてどのAPIsがサポートされるかを示すメカニズムを提供することができる。] 図1A 図1B
[0087] 図1−5で図示された様々なコンポーネントは、ハードウェア及び/またはソフトウェアのいずれの適切な組み合わせによって実現されることができる。図1−5では、様々なコンポーネントは、個別のユニットあるいはモジュールとして描写されている。しかしながら、図1A−5を参照して説明される様々なコンポーネントのうちのすべてあるいはいくつかは、共通のハードウェア及び/またはソフトウェア内で、組み合わせられたユニットあるいはモジュールに組み込まれることができる。したがって、コンポーネント、ユニット、あるいはモジュールとしての特徴の表示は、説明を簡単にするために特定の機能特徴を強調するように意図されており、個別のハードウェアあるいはソフトウェアコンポーネントによってそのような特徴の実現を必ずしも必要としていない。ある場合には、様々なユニットは、1以上のプロセッサによって実行されるプログラム可能なプロセスとしてインプリメントされることができる。] 図1A
[0088] 例えば、本開示で記載された技術の様々な態様は、1以上の汎用マイクロプロセッサ、デジタル信号プロセッサ(DSPs)、特定用途向け集積回路(ASICs)、フィールドプログラム可能なゲートアレイ(FPGAs)、あるいは他の同等な論理デバイス内でインプリメントされることができる。したがって、ここにおいて使用されている、「プロセッサ(processor)」、「コントローラ(controller)」という用語は、前述の構造のいずれか、あるいは、ここに記載されている技術のインプリメンテーションに適切ないずれの他の構造、を指すことができる。]
[0089] ここにおいて記載されたコンポーネントと技術は、ハードウェア、ソフトウェア、ファームウェアあるいはそれらの任意の組み合わせにおいて、インプリメントされることができる。モジュールあるいはコンポーネントと説明されるいずれの特徴も、集積論理デバイスにおいて一緒に、あるいは、ディスクリートであるが相互運用可能な論理デバイスとして別々に、インプリメントされることができる。様々な態様では、そのようなコンポーネントは、1以上の集積回路デバイスとして少なくとも部分的に形成されることができ、そしてそれは、集積回路チップあるいはチップセットのような、集積回路デバイスと全体的に呼ばれることができる。そのような回路は、単独の集積回路チップデバイスにおいて、あるいは、マルチプルの相互運用可能な集積回路チップデバイスにおいて、提供されることができ、そして、様々なイメージ、ディスプレイ、オーディオ、あるいは他のマルチメディアのアプリケーション及びデバイスのいずれかにおいて使用されることができる。いくつかの態様では、例えば、そのようなコンポーネントは、無線通信デバイスハンドセットのようなモバイルデバイスの一部分を形成することができる。]
[0090] ソフトウェアでインプリメントされる場合には、本技術は、1以上のプロセッサによって実施されるときに上記で説明される方法のうちの1つまたは複数を実行する命令あるいはコードを備えているコンピュータ可読媒体によって少なくとも部分的に実現されることができる。コンピュータ可読媒体は、コンピュータプログラムプロダクトの一部分を形成することができ、そしてそれはパッケージング材料を含むことができる。コンピュータ可読媒体は、シンクロナス動的ランダムアクセスメモリ(SDRAM)、読み取り専用メモリ(ROM)、不揮発性ランダムアクセスストレージデバイス(NVRAM)、電子消去可能プログラマブル読み取り専用メモリ(EEPROM)、eDRAM(embedded Dynamic Random Access Memory)、スタティックランダムアクセスメモリ(SRAM)、FLASHメモリ、磁気あるいは光学のデータストレージメディア、のようなランダムアクセスメモリ(RAM)を備えることができる。]
[0091] 技術は、追加的にあるいは代替的に、データストラクチャあるいは命令の形態でコードを搬送する、あるいは、通信する、また、1以上のプロセッサによってアクセスされ、読み取られ、および/または実行されることができる、コンピュータ可読通信メディアによって少なくとも部分的に実現されることができる。いずれの接続も、適切にコンピュータ可読媒体(computer-readable medium)と名付けられることができる。例えば、ソフトウェアがウェブサイト、サーバ、あるいは、同軸ケーブル、光ファイバケーブル、ツイストペア(twisted pair)、デジタル加入者ライン(DSL)、あるいは赤外線、無線、およびマイクロ波のような無線技術、を使用している他の遠隔ソース、から送信される場合には、同軸ケーブル、光ファイバケーブル、ツイストペア、DSL、あるいは赤外線、無線、およびマイクロ波のような無線技術は、メディアの定義に含まれる。上記の組み合わせもコンピュータ可読媒体の範囲内に含まれるべきである。利用されるいずれのソフトウェアも、1以上のプロセッサによって実行されることができ、例えば、1以上のDSP’s、汎用マイクロプロセッサ、ASIC’s、FPGA’s、あるいは他の同等な集積あるいはディスクリートの論理回路がある。]
[0092] 開示の様々な態様が説明されている。これら及び他の態様は、特許請求の範囲の範囲内にある。]
权利要求:

請求項1
クライアントレンダリング・アプリケーションプログラムインタフェース(API)とネイティブプラットフォームレンダリングAPIとの間にあるプラットフォームインタフェース層を介して、グラフィクス表面を作成することと;前記プラットフォームインタフェース層を使用して、カラースペース内の前記表面と関連づけられたデータのフォーマットレイアウトを指定することと、なお、前記フォーマットレイアウトは、前記カラースペース内の前記データの1以上のカラーコンポーネントのレイアウトを示す;を備えている方法。
請求項2
前記プラットフォームインタフェース層は、埋め込み型グラフィクスライブラリ(EGL)層を備え、前記クライアントレンダリングAPIは、オープグラフィクスライブラリ(OpenGL)APIあるいは、オープンベクトルグラフィクス(OpenVG)APIを備えている、請求項1に記載の方法。
請求項3
前記カラースペースは、輝度、青色差、赤色差(YCbCr)のカラースペースを備えており、前記表面は、YCbCr表面を備えており、前記フォーマットレイアウトは、データの個々のYコンポーネント、Cbコンポーネント、及びCrコンポーネントのオーダリングを示す、請求項1に記載の方法。
請求項4
前記フォーマットレイアウトは、第1の平面内の前記1以上のカラーコンポーネントの第1グループの第1レイアウトを示し、前記フォーマットレイアウトは、前記第1の平面とは異なる第2の平面内の前記1以上のカラーコンポーネントの第2グループの第2レイアウトをさらに示す、請求項1に記載の方法。
請求項5
前記第1グループは、複数の前記1以上のカラーコンポーネントを含んでおり、前記第1レイアウトは、前記第1の平面内の前記第1グループの前記複数のカラーコンポーネントのオーダリングを示す、請求項4に記載の方法。
請求項6
前記表面と関連づけられた前記データを保存することと、フォーマットデータとして前記データの前記フォーマットレイアウトを保存することと、をさらに備えている請求項1に記載の方法。
請求項7
ディスプレイデバイス上で前記表面をディスプレイするために、プロセッサに対して、パターン情報として、前記表面と関連づけられた前記データの前記フォーマットレイアウトを提供すること、をさらに備えている請求項1に記載の方法。
請求項8
前記表面と関連づけられた前記データを、異なるカラースペース内の変換データへと変換することにおいて使用するために、カラー変換情報を指定すること、をさらに備えている請求項1に記載の方法。
請求項9
前記カラースペースは、輝度、青色差、赤色差(YCbCr)のカラースペースを備えており、前記異なるカラースペースは、赤、緑、青(RGB)カラースペースを備え、前記変換データは、RGB表面データを備える、請求項8に記載の方法。
請求項10
前記プラットフォームインタフェース層を使用して、前記カラースペース内で第2の表面を作成することと;前記プラットフォームインタフェース層を使用して、前記カラースペース内の前記第2の表面と関連づけられた第2のデータの第2のフォーマットレイアウトを指定することと、なお、前記第2のフォーマットレイアウトは、前記カラースペース内の前記第2のデータの1以上のカラーコンポーネントの第2のレイアウトを示す;オーバーレイオーダーに基づいて、前記表面と前記第2の表面とをオーバーレイすることと;をさらに備えている請求項1に記載の方法。
請求項11
前記表面は、2次元表面、3次元表面、あるいはビデオ表面を備えており、前記第2の表面は、2次元表面、3次元表面、あるいはビデオ表面を備えている、請求項10に記載の方法。
請求項12
前記カラースペース内で前記表面を作成することは、前記表面と関連づけられる前記データについてのサンプリング構成情報を提供することを備えている、請求項1に記載の方法。
請求項13
前記表面と関連づけられた前記データを生成するために前記表面の表面レンダリングを実行することと、前記フォーマットレイアウトにしたがって前記データを保存することと、をさらに備えている請求項1に記載の方法。
請求項14
前記方法は、1以上のプロセッサによって実行され、前記1以上のプロセッサのそれぞれは、ディスプレイプロセッサ、グラフィクスプロセッサ、あるいは制御プロセッサを備えている、請求項1に記載の方法。
請求項15
コンピュータ可読媒体であって、1以上のプログラマブルプロセッサに、クライアントレンダリング・アプリケーションプログラムインタフェース(API)とネイティブプラットフォームレンダリングAPIとの間にあるプラットフォームインタフェース層を介して、グラフィクス表面を作成させ;前記プラットフォームインタフェース層を使用して、カラースペース内の前記表面と関連づけられたデータのフォーマットレイアウトを指定させる、なお、前記フォーマットレイアウトは、前記カラースペース内の前記表面と関連づけられたデータの1以上のカラーコンポーネントのレイアウトを示す;命令を備えている、コンピュータ可読媒体。
請求項16
前記プラットフォームインタフェース層は、埋め込み型グラフィクスライブラリ(EGL)層を備え、前記クライアントレンダリングAPIは、オープングラフィクスライブラリ(OpenGL)APIあるいはオープンベクトルグラフィクス(OpenVG)APIを備えている、請求項15に記載のコンピュータ可読媒体。
請求項17
前記カラースペースは、輝度、青色差、赤色差(YCbCr)のカラースペースを備えており、前記表面は、YCbCr表面を備え、前記フォーマットレイアウトは、前記データの個々のYコンポーネント、Cbコンポーネント、及びCrコンポーネントのオーダリングを示す、請求項15に記載のコンピュータ可読媒体。
請求項18
前記フォーマットレイアウトは、第1の平面内の前記1以上のカラーコンポーネントの第1グループの第1のレイアウトを示し、前記フォーマットレイアウトは、前記第1の平面とは異なる第2の平面内の前記1以上のカラーコンポーネントの第2のグループの第2のレイアウトをさらに示す、請求項15に記載のコンピュータ可読媒体。
請求項19
前記第1のグループは、複数の前記1以上のカラーコンポーネントを含んでおり、前記第1のレイアウトは、前記第1の平面内の前記第1のグループの前記複数のカラーコンポーネントのオーダリングを示す、請求項18に記載のコンピュータ可読媒体。
請求項20
前記1以上のプロセッサに、前記表面と関連づけられた前記データを保存させ、フォーマットデータとして前記データの前記フォーマットレイアウトを保存させる、ための命令、をさらに備えている請求項15に記載のコンピュータ可読媒体。
請求項21
前記1以上のプロセッサに、ディスプレイデバイス上で前記表面をディスプレイするために、プロセッサに対して、パターン情報として前記表面と関連づけられた前記データの前記フォーマットレイアウトを提供させる、ための命令、をさらに備えている請求項15に記載のコンピュータ可読媒体。
請求項22
前記1以上のプロセッサに、前記表面と関連づけられた前記データを、異なるカラースペース内の変換データへと変換することにおいて使用するために、カラー変換情報を指定させる、ための命令、をさらに備えている請求項15に記載のコンピュータ可読媒体。
請求項23
前記カラースペースは、輝度、青色差、赤色差(YCbCr)のカラースペースを備えており、前記異なるカラースペースは、赤、緑、青(RGB)カラースペースを備え、前記変換データは、RGB表面データを備える、請求項22に記載のコンピュータ可読媒体。
請求項24
前記1以上のプロセッサに、前記プラットフォームインタフェース層を使用して、前記カラースペース内で第2の表面を作成させ;前記プラットフォームインタフェース層を使用して、前記カラースペース内の前記第2の表面と関連づけられた第2のデータの第2のフォーマットレイアウトを指定させ、なお、前記第2のフォーマットレイアウトは、前記カラースペース内の前記第2のデータの1以上のカラーコンポーネントの第2のレイアウトを示す;オーバーレイオーダーに基づいて、前記表面と前記第2の表面とをオーバーレイさせる;ための命令、をさらに備えている請求項15に記載のコンピュータ可読媒体。
請求項25
前記表面は、2次元表面、3次元表面、あるいはビデオ表面を備えており、前記第2の表面は、2次元表面、3次元表面、あるいはビデオ表面を備えている、請求項24に記載のコンピュータ可読媒体。
請求項26
前記カラースペース内で前記表面を前記1以上のプロセッサに作成させるための命令は、前記表面と関連づけられる前記データについてのサンプリング構成情報を前記1以上のプロセッサに提供させるための命令を備えている、請求項15に記載のコンピュータ可読媒体。
請求項27
前記1以上のプロセッサに、前記表面と関連づけられた前記データを生成するために前記表面の表面レンダリングを実行させ、前記フォーマットレイアウトにしたがって前記データを保存させる、ための命令、をさらに備えている請求項15に記載のコンピュータ可読媒体。
請求項28
表面情報を保存するように構成されたストレージデバイスと、クライアントレンダリング・アプリケーションプログラムインタフェース(API)とネイティブプラットフォームレンダリングAPIとの間にあるプラットフォームインタフェース層を介して、グラフィクス表面を作成するように構成された1以上のプロセッサと;を備え、前記1以上のプロセッサは、前記プラットフォームインタフェース層を使用して、カラースペース内の前記表面と関連づけられたデータのフォーマットレイアウトを指定するように、前記ストレージデバイスの表面情報内の前記フォーマットレイアウトを保存するように、さらに構成されており、前記フォーマットレイアウトは、前記カラースペース内の前記表面と関連づけられた前記データの1以上のカラーコンポーネントのレイアウトを示す;を備えているデバイス。
請求項29
前記プラットフォームインタフェース層は、埋め込み型グラフィクスライブラリ(EGL)層を備え、前記クライアントレンダリングAPIは、オープングラフィクスライブラリ(OpenGL)APIあるいはオープンベクトルグラフィクス(OpenVG)APIを備えている、請求項28に記載のデバイス。
請求項30
前記カラースペースは、輝度、青色差、赤色差(YCbCr)のカラースペースを備えており、前記表面は、YCbCr表面を備え、前記フォーマットレイアウトは、前記表面と関連づけられた前記データのYコンポーネント、Cbコンポーネント、及びCrコンポーネントのオーダリングを示す、請求項28に記載のデバイス。
請求項31
前記フォーマットレイアウトは、第1の平面内の前記1以上のカラーコンポーネントの第1グループの第1レイアウトを示し、前記フォーマットレイアウトは、前記第1の平面とは異なる第2の平面内の前記1以上のカラーコンポーネントの第2グループの第2レイアウトをさらに示す、請求項28に記載のデバイス。
請求項32
前記第1のグループは、複数の前記1以上のカラーコンポーネントを含んでおり、前記第1のレイアウトは、前記第1の平面内の前記第1のグループの前記複数のカラーコンポーネントのオーダリングを示す、請求項31に記載のデバイス。
請求項33
前記1以上のプロセッサは、前記ストレージデバイスにおいて前記表面と関連づけられた前記データを保存するように、また、前記ストレージデバイスにおいてフォーマットデータとして前記表面と関連づけられた前記データの前記フォーマットレイアウトを保存するように、さらに構成されている、請求項28に記載のデバイス。
請求項34
ディスプレイデバイス、をさらに備えており、前記1以上のプロセッサは、前記ディスプレイデバイス上で前記表面をディスプレイするために、パターン情報として前記表面と関連づけられた前記データの前記フォーマットレイアウトを提供するようにさらに構成されている、請求項28に記載のデバイス。
請求項35
前記1以上のプロセッサは、前記表面と関連づけられたデータを異なるカラースペースについて変換データへと変換することにおいて使用するために、カラー変換情報を指定するようにさらに構成されている、請求項28に記載のデバイス。
請求項36
前記カラースペースは、輝度、青色差、赤色差(YCbCr)のカラースペースを備えており、前記異なるカラースペースは、赤、緑、青(RGB)カラースペースを備え、前記変換データは、RGB表面データを備える、請求項35に記載のデバイス。
請求項37
前記プラットフォームインタフェース層を使用して、前記カラースペース内で第2の表面を作成するように、前記プラットフォームインタフェース層を使用して、前記カラースペース内の前記第2の表面と関連づけられた第2のデータの第2のフォーマットレイアウトを指定するように、オーバーレイオーダーに基づいて、前記表面と前記第2の表面とをオーバーレイするように、さらに構成されており、前記第2のフォーマットレイアウトは、前記カラースペース内の前記第2のデータの1以上のカラーコンポーネントの第2のレイアウトを示す、請求項28に記載のデバイス。
請求項38
前記表面は、2次元表面、3次元表面、あるいはビデオ表面を備えており、前記第2の表面は、2次元表面、3次元表面、あるいはビデオ表面を備えている、請求項37に記載のデバイス。
請求項39
前記1以上のプロセッサは、前記カラースペース内で前記表面を作成するように構成されており、前記1以上のプロセッサは、前記表面と関連づけられる前記データについてのサンプリング構成情報を提供するようにさらに構成されている、請求項28に記載のデバイス。
請求項40
前記1以上のプロセッサは、前記表面と関連づけられる前記データを生成するために前記表面の表面レンダリングを実行するように、前記フォーマットレイアウトにしたがって前記データを保存するように、さらに構成されている、請求項28に記載のデバイス。
請求項41
前記1以上のプロセッサのそれぞれは、ディスプレイプロセッサ、グラフィクスプロセッサ、あるいは制御プロセッサを備えている、請求項28に記載のデバイス。
請求項42
前記デバイスは、無線通信デバイスハンドセット、パーソナルコンピュータ、あるいはラップトップデバイスを備えている、請求項28に記載のデバイス。
請求項43
前記デバイスは、1以上の集積回路デバイスを備えている、請求項28に記載のデバイス。
請求項44
クライアントレンダリング・アプリケーションプログラムインタフェース(API)とネイティブプラットフォームレンダリングAPIとの間にあるプラットフォームインタフェース層を介して、グラフィクス表面を作成するための手段と;前記プラットフォームインタフェース層を使用して、カラースペース内の前記表面と関連づけられたデータのフォーマットレイアウトを指定するための手段と、なお、前記フォーマットレイアウトは、前記カラースペース内の表面と関連づけられた前記データの1以上のカラーコンポーネントのレイアウトを示す;を備えているデバイス。
請求項45
前記プラットフォームインタフェース層は、埋め込み型グラフィクスライブラリ(EGL)層を備え、前記クライアントレンダリングAPIは、オープングラフィクスライブラリ(OpenGL)APIあるいはオープンベクトルグラフィクス(OpenVG)APIを備えている、請求項44に記載のデバイス。
請求項46
前記カラースペースは、輝度、青色差、赤色差(YCbCr)のカラースペースを備えており、前記表面は、YCbCr表面を備え、前記フォーマットレイアウトは、前記データの個々のYコンポーネント、Cbコンポーネント、及びCrコンポーネントのオーダリングを示す、請求項44に記載のデバイス。
請求項47
前記フォーマットレイアウトは、第1の平面内の前記1以上のコンポーネントの第1グループの第1レイアウトを示し、前記フォーマットレイアウトは、前記第1の平面とは異なる第2の平面内の前記1以上のカラーコンポーネントの第2グループの第2レイアウトをさらに示す、請求項44に記載のデバイス。
請求項48
前記第1グループは、複数の前記1以上のカラーコンポーネントを含んでおり、前記第1レイアウトは、前記第1の平面内の前記第1グループの前記複数のカラーコンポーネントのオーダリングを示す、請求項47に記載のデバイス。
請求項49
前記表面と関連づけられた前記データを保存するための手段と、フォーマットデータとして前記データの前記フォーマットレイアウトを保存するための手段と、をさらに備えている請求項44に記載のデバイス。
請求項50
ディスプレイ上で前記表面をディスプレイするために、プロセッサに対して、パターン情報として前記表面と関連づけられた前記データの前記フォーマットレイアウトを提供するための手段、をさらに備えている請求項44に記載のデバイス。
請求項51
前記表面と関連づけられた前記データを、異なるカラースペース内の変換データへと変換することにおいて使用するために、カラー変換情報を指定するための手段、をさらに備えている請求項44に記載のデバイス。
請求項52
前記カラースペースは、輝度、青色差、赤色差(YCbCr)のカラースペースを備えており、前記異なるカラースペースは、赤、緑、青(RGB)カラースペースを備え、前記変換データは、RGB表面データを備える、請求項51に記載のデバイス。
請求項53
前記プラットフォームインタフェース層を使用して、前記カラースペース内で第2の表面を作成するための手段と;前記プラットフォームインタフェース層を使用して、前記カラースペース内の前記第2の表面と関連づけられた第2のデータの第2のフォーマットレイアウトを指定するための手段と、なお、前記第2のフォーマットレイアウトは、前記カラースペース内の前記第2のデータの1以上のカラーコンポーネントの第2のレイアウトを示す;オーバーレイオーダーに基づいて、前記表面と前記第2の表面とをオーバーレイするための手段と;をさらに備えている請求項44に記載のデバイス。
請求項54
前記表面は、2次元表面、3次元表面、あるいはビデオ表面を備えており、前記第2の表面は、2次元表面、3次元表面、あるいはビデオ表面を備えている、請求項53に記載のデバイス。
請求項55
前記カラースペース内で前記表面を作成するための手段は、前記表面と関連づけられる前記データについてのサンプリング構成情報を提供するための手段を備えている、請求項44に記載のデバイス。
請求項56
前記表面と関連づけられた前記データを生成するために前記表面の表面レンダリングを実行するための手段と、前記フォーマットレイアウトにしたがって前記データを保存するための手段と、をさらに備えている請求項44に記載のデバイス。
类似技术:
公开号 | 公开日 | 专利标题
US10796400B2|2020-10-06|Graphics processing architecture employing a unified shader
US20180047129A1|2018-02-15|Method for efficient re-rendering objects to vary viewports and under varying rendering and rasterization parameters
TWI602148B|2017-10-11|用於紋理映射至非正交網格的梯度調整
DE102015113240A1|2016-02-18|System, verfahren und computerprogrammprodukt für schattierung unter verwendung eines dynamischen objektraumgitters
US9165399B2|2015-10-20|System, method, and computer program product for inputting modified coverage data into a pixel shader
US5764243A|1998-06-09|Rendering architecture with selectable processing of multi-pixel spans
US7477252B2|2009-01-13|Processing three dimensional data for spatial three dimensional displays
US7064771B1|2006-06-20|Method and apparatus for compositing colors of images using pixel fragments with Z and Z gradient parameters
US5727192A|1998-03-10|Serial rendering system with auto-synchronization on frame blanking
US5649173A|1997-07-15|Hardware architecture for image generation and manipulation
TWI592902B|2017-07-21|來自片段著色器程式之樣本遮罩的控制
US6650323B2|2003-11-18|Graphics system having a super-sampled sample buffer and having single sample per pixel support
US5798770A|1998-08-25|Graphics rendering system with reconfigurable pipeline sequence
TWI281639B|2007-05-21|Method for managing state variables for rendering primitives, apparatus for rendering a scene including primitives, and machine readable medium
US8325184B2|2012-12-04|Fragment shader bypass in a graphics processing unit, and apparatus and method thereof
EP1789927B1|2013-03-27|Increased scalability in the fragment shading pipeline
US6184888B1|2001-02-06|Method and apparatus for rapidly rendering and image in response to three-dimensional graphics data in a data rate limited environment
AU2009225336B2|2011-08-04|Method of compositing variable alpha fills supporting group opacity
US8044951B1|2011-10-25|Integer-based functionality in a graphics shading language
US8823718B2|2014-09-02|Systems and methods for downloading algorithmic elements to a coprocessor and corresponding techniques
Rezk-Salama et al.2000|Interactive volume on standard PC graphics hardware using multi-textures and multi-stage rasterization
US6781585B2|2004-08-24|Graphics system having a super-sampled sample buffer and having single sample per pixel support
US5596693A|1997-01-21|Method for controlling a spryte rendering processor
US5777629A|1998-07-07|Graphics subsystem with smart direct-memory-access operation
US8644643B2|2014-02-04|Convolution filtering in a graphics processor
同族专利:
公开号 | 公开日
BRPI0906950A2|2015-07-14|
RU2010134404A|2012-02-27|
US20090184977A1|2009-07-23|
CA2711586A1|2009-07-23|
EP2248107A1|2010-11-10|
KR20100103703A|2010-09-27|
TW200943222A|2009-10-16|
CN101911126A|2010-12-08|
WO2009092020A1|2009-07-23|
引用文献:
公开号 | 申请日 | 公开日 | 申请人 | 专利标题
法律状态:
2012-01-18| A131| Notification of reasons for refusal|Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120117 |
2012-04-18| A601| Written request for extension of time|Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20120417 |
2012-04-25| A602| Written permission of extension of time|Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20120424 |
2012-05-17| A521| Written amendment|Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120516 |
2012-07-18| A01| Written decision to grant a patent or to grant a registration (utility model)|Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20120717 |
2012-11-28| A045| Written measure of dismissal of application [lapsed due to lack of payment]|Free format text: JAPANESE INTERMEDIATE CODE: A045 Effective date: 20121127 |
优先权:
申请号 | 申请日 | 专利标题
[返回顶部]